Text copied to clipboard!
Tytuł
Text copied to clipboard!Programista systemowy
Opis
Text copied to clipboard!
Poszukujemy programisty systemowego, który dołączy do zespołu odpowiedzialnego za projektowanie, rozwój i utrzymanie oprogramowania niskopoziomowego wspierającego działanie systemów operacyjnych, sterowników, narzędzi systemowych oraz komponentów infrastruktury IT. Osoba na tym stanowisku będzie pracować nad rozwiązaniami wymagającymi bardzo dobrej znajomości architektury komputerów, zarządzania pamięcią, współbieżności, komunikacji międzyprocesowej oraz optymalizacji wydajności. Rola ta jest idealna dla kandydata, który lubi rozwiązywać złożone problemy techniczne, analizować działanie systemów na głębokim poziomie i tworzyć stabilne, bezpieczne oraz wydajne oprogramowanie.
Programista systemowy współpracuje zazwyczaj z inżynierami oprogramowania, administratorami systemów, specjalistami DevOps, architektami rozwiązań oraz zespołami bezpieczeństwa. W codziennej pracy wykorzystuje języki takie jak C, C++, Rust lub asembler, a także narzędzia do debugowania, profilowania i analizy kodu. Ważnym elementem stanowiska jest umiejętność pracy blisko sprzętu i systemu operacyjnego, z uwzględnieniem ograniczeń wydajnościowych, niezawodnościowych i bezpieczeństwa. Kandydat powinien rozumieć, jak działają procesy, wątki, systemy plików, mechanizmy synchronizacji, przerwania oraz interfejsy sprzętowe.
Na tym stanowisku oczekujemy nie tylko umiejętności programistycznych, ale również analitycznego podejścia do diagnozowania błędów i optymalizacji działania systemów. Programista systemowy bierze udział w projektowaniu architektury komponentów, przeglądach kodu, testach integracyjnych i wdrażaniu poprawek, które mają bezpośredni wpływ na stabilność całego środowiska. Istotna jest także dbałość o jakość kodu, dokumentację techniczną oraz zgodność z dobrymi praktykami inżynierii oprogramowania.
Szukamy osoby samodzielnej, dokładnej i odpowiedzialnej, która potrafi efektywnie pracować zarówno indywidualnie, jak i w zespole. Cenimy doświadczenie w pracy z systemami Linux lub Unix, znajomość zagadnień związanych z bezpieczeństwem systemów, a także praktykę w analizie logów, zrzutów pamięci i problemów wydajnościowych. Dodatkowym atutem będzie doświadczenie w tworzeniu sterowników, modułów jądra, systemów wbudowanych lub narzędzi infrastrukturalnych.
Oferowane stanowisko daje możliwość pracy nad krytycznymi komponentami technologicznymi, które stanowią fundament działania nowoczesnych platform i usług. To rola dla osób, które chcą rozwijać się w obszarze zaawansowanego programowania, mieć realny wpływ na jakość i niezawodność systemów oraz uczestniczyć w ambitnych projektach technologicznych wymagających precyzji, wiedzy i inżynierskiego podejścia.
Obowiązki
Text copied to clipboard!- Projektowanie i rozwijanie oprogramowania systemowego oraz narzędzi niskopoziomowych.
- Tworzenie, testowanie i utrzymywanie komponentów współpracujących z systemem operacyjnym.
- Analiza wydajności aplikacji i optymalizacja wykorzystania zasobów systemowych.
- Diagnozowanie błędów na poziomie systemu, pamięci, procesów i wątków.
- Współpraca z zespołami infrastruktury, bezpieczeństwa i rozwoju oprogramowania.
- Przygotowywanie dokumentacji technicznej dla tworzonych rozwiązań.
- Udział w przeglądach kodu oraz wdrażaniu dobrych praktyk programistycznych.
- Implementacja mechanizmów zwiększających stabilność i bezpieczeństwo systemów.
Wymagania
Text copied to clipboard!- Bardzo dobra znajomość języka C, C++ lub Rust.
- Doświadczenie w pracy z systemami Linux, Unix lub pokrewnymi.
- Znajomość zagadnień związanych z pamięcią, procesami i współbieżnością.
- Umiejętność debugowania i profilowania oprogramowania systemowego.
- Zrozumienie architektury komputerów i działania systemów operacyjnych.
- Doświadczenie w pracy z narzędziami kontroli wersji, takimi jak Git.
- Umiejętność czytania i tworzenia dokumentacji technicznej.
- Analityczne myślenie i samodzielność w rozwiązywaniu problemów technicznych.
Potencjalne pytania na rozmowie
Text copied to clipboard!- Jakie masz doświadczenie w programowaniu niskopoziomowym?
- Z jakimi systemami operacyjnymi pracowałeś najczęściej?
- Czy tworzyłeś kiedyś sterowniki, moduły jądra lub narzędzia systemowe?
- Jakie narzędzia wykorzystujesz do debugowania i analizy wydajności?
- Opisz sytuację, w której rozwiązałeś złożony problem systemowy.
- Jakie języki programowania stosujesz w pracy systemowej?
- Czy masz doświadczenie z programowaniem współbieżnym i synchronizacją?
- W jaki sposób dbasz o jakość, bezpieczeństwo i stabilność kodu?